#include<iostream>
using namespace std;
#define ll long long
ll w[800000];
ll x[800000];
ll y[800000];
ll a[200000];
void pushup(ll u){
    w[u]=w[u*2]+w[2*u+1];
    // x[u]=x[u*2]+x[2*u+1];
    // y[u]=y[u*2]+y[2*u+1];
}
ll s(ll ax,ll ay,ll len){
    ll an=ax+ay*(len-1ll);
    return 1ll*(ax+an)*len/2;
}
void build(ll u,ll l,ll r){
    if(l==r){
        w[u]=a[l];
        return;
    }
    ll mid=(l+r)>>1;
    build(u*2,l,mid);
    build(u*2+1,mid+1,r);
    pushup(u);
}
void maketag(ll u,ll l,ll r,ll add_x,ll add_y){
   x[u]+=add_x;
   y[u]+=add_y;
   w[u]+=s(add_x,add_y,r-l+1);
}
void pushdown(ll u, ll L, ll R) {
    if (x[u] != 0 || y[u] != 0) {
        ll mid = (L + R) >> 1;
        maketag(u * 2, L, mid, x[u], y[u]);
        maketag(u * 2 + 1, mid + 1, R, x[u]+(mid+1-L)*y[u], y[u]);
        x[u] = 0;
        y[u] = 0;
    }
}
ll inrange(ll L,ll R,ll l,ll r){
    return (l<=L)&&(R<=r);
}
ll outrange(ll L,ll R,ll l,ll r){
    return (L>r)||(R<l);
}
void xg(ll u, ll L, ll R, ll l, ll r, ll k, ll d,ll k1) {
    if (inrange(L, R, l, r)) {
        maketag(u, L, R, k1+(L-l)*d, d);
    } else if (!outrange(L, R, l, r)) {
        ll mid = (L + R) >> 1;
        pushdown(u, L, R);
        xg(u * 2, L, mid, l, r, k1+(L-l)*d, d,k1);
        xg(u * 2 + 1, mid + 1, R, l, r, k1+(mid+1-l)*d,d,k1);
        pushup(u);
    }
}
ll cx(ll u,ll L,ll R,ll l,ll r){
    if(inrange(L,R,l,r)){
        return w[u];   
    }
    else{
        if(outrange(L,R,l,r))return 0;
        else{
            ll mid=(L+R)>>1;
            pushdown(u,L,R);
            return cx(u*2,L,mid,l,r)+cx(u*2+1,mid+1,R,l,r);
        }
    }
}
ll cx1(ll u,ll L,ll R,ll p){
    if(L==R){
        return w[u];
    }
    else {
        ll mid=(L+R)>>1;
        if(mid>=p)return cx1(u*2,L,mid,p);
         else return cx1(u*2+1,mid+1,R,p);
    }
}
int main(){
    ll n,m;
    cin>>n>>m;
    for(ll i=1;i<=n;i++){
        cin>>a[i];
    }
    build(1,1,n);
    for(ll i=1;i<=m;i++){
        ll op;
        cin>>op;
        if(op==1){
            ll l,r,k,d;
            cin>>l>>r>>k>>d;
            xg(1,1,n,l,r,k,d,k);
        }
        if(op==2){
            ll x;
            cin>>x;
            cout<<cx(1,1,n,x,x)<<endl;
        }
    }
    return 0;
}